[INFO] fetching crate oxo-call 0.9.2...
[INFO] testing oxo-call-0.9.2 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate oxo-call 0.9.2 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate oxo-call 0.9.2
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate oxo-call 0.9.2
[INFO] tweaked toml for crates.io crate oxo-call 0.9.2 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate oxo-call 0.9.2 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oxo-call 0.9.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap_complete v4.6.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2aee28b07856194ce1dc99b0b374a35be94c3a9eca4456c886f9a1fb2b94c6f3
[INFO] running `Command { std: "docker" "start" "-a" "2aee28b07856194ce1dc99b0b374a35be94c3a9eca4456c886f9a1fb2b94c6f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2aee28b07856194ce1dc99b0b374a35be94c3a9eca4456c886f9a1fb2b94c6f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2aee28b07856194ce1dc99b0b374a35be94c3a9eca4456c886f9a1fb2b94c6f3", kill_on_drop: false }`
[INFO] [stdout] 2aee28b07856194ce1dc99b0b374a35be94c3a9eca4456c886f9a1fb2b94c6f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cfcc8c7ca611ddb16cc1e24500fde8da0c7a21cca8f05cfb90c2c8811924e765
[INFO] running `Command { std: "docker" "start" "-a" "cfcc8c7ca611ddb16cc1e24500fde8da0c7a21cca8f05cfb90c2c8811924e765", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling which v8.0.2
[INFO] [stderr]    Compiling indicatif v0.18.4
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling aws-lc-sys v0.39.0
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling toml v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling clap_complete v4.6.0
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling oxo-call v0.9.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "cfcc8c7ca611ddb16cc1e24500fde8da0c7a21cca8f05cfb90c2c8811924e765", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cfcc8c7ca611ddb16cc1e24500fde8da0c7a21cca8f05cfb90c2c8811924e765", kill_on_drop: false }`
[INFO] [stdout] cfcc8c7ca611ddb16cc1e24500fde8da0c7a21cca8f05cfb90c2c8811924e765
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1500977aef0741201fde11fcec4dfbbbca6b5817e75d029d4c40542fa775b37c
[INFO] running `Command { std: "docker" "start" "-a" "1500977aef0741201fde11fcec4dfbbbca6b5817e75d029d4c40542fa775b37c", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling oxo-call v0.9.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]     --> tests/cli_tests.rs:1294:9
[INFO] [stdout]      |
[INFO] [stdout] 1294 |     use std::io::Write;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 38.75s
[INFO] running `Command { std: "docker" "inspect" "1500977aef0741201fde11fcec4dfbbbca6b5817e75d029d4c40542fa775b37c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1500977aef0741201fde11fcec4dfbbbca6b5817e75d029d4c40542fa775b37c", kill_on_drop: false }`
[INFO] [stdout] 1500977aef0741201fde11fcec4dfbbbca6b5817e75d029d4c40542fa775b37c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7697c0dc60391fb09573585398b8f72b542097b8b9876dcb866b93f9fab0bd16
[INFO] running `Command { std: "docker" "start" "-a" "7697c0dc60391fb09573585398b8f72b542097b8b9876dcb866b93f9fab0bd16", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]     --> tests/cli_tests.rs:1294:9
[INFO] [stderr]      |
[INFO] [stderr] 1294 |     use std::io::Write;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `oxo-call` (test "cli_tests") generated 1 warning (run `cargo fix --test "cli_tests" -p oxo-call` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oxo_call-9d7052728e2349e8)
[INFO] [stdout] 
[INFO] [stdout] running 754 tests
[INFO] [stdout] test config::tests::test_config_default_max_tokens ... ok
[INFO] [stdout] test config::tests::test_config_default_no_api_token ... ok
[INFO] [stdout] test config::tests::test_config_default_temperature ... ok
[INFO] [stdout] test config::tests::test_config_default_provider ... ok
[INFO] [stdout] test config::tests::test_config_get_provider ... ok
[INFO] [stdout] test config::tests::test_config_get_unknown_key_errors ... ok
[INFO] [stdout] test config::tests::test_config_set_api_base ... ok
[INFO] [stdout] test config::tests::test_config_set_api_token ... ok
[INFO] [stdout] test config::tests::test_config_set_max_tokens ... ok
[INFO] [stdout] test config::tests::test_config_set_max_tokens_invalid ... ok
[INFO] [stdout] test config::tests::test_config_set_provider ... ok
[INFO] [stdout] test config::tests::test_config_set_temperature_invalid ... ok
[INFO] [stdout] test config::tests::test_config_set_unknown_key_errors ... ok
[INFO] [stdout] test config::tests::test_config_set_temperature ... ok
[INFO] [stdout] test config::tests::test_config_set_docs_auto_update ... ok
[INFO] [stdout] test config::tests::test_config_set_docs_auto_update_invalid ... ok
[INFO] [stdout] test config::tests::test_config_save_and_load_round_trip ... ok
[INFO] [stdout] test config::tests::test_effective_api_base_from_config_value ... ok
[INFO] [stdout] test config::tests::test_effective_api_base_github_copilot ... ok
[INFO] [stdout] test config::tests::test_effective_api_base_openai ... ok
[INFO] [stdout] test config::tests::test_effective_api_base_ollama ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_from_config ... ok
[INFO] [stdout] test config::tests::test_effective_api_base_anthropic ... ok
[INFO] [stdout] test config::tests::test_effective_api_base_env_takes_precedence ... ok
[INFO] [stdout] test config::tests::test_config_toml_round_trip ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_anthropic_legacy_env ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_env_takes_precedence ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_generic_legacy_env ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_none_when_empty_config ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_env_var_takes_precedence ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_gh_token_fallback ... ok
[INFO] [stdout] test config::tests::test_config_load_returns_default_when_missing ... ok
[INFO] [stdout] test config::tests::test_effective_api_base_unknown_provider ... ok
[INFO] [stdout] test config::tests::test_effective_api_base_from_config ... ok
[INFO] [stdout] test config::tests::test_data_dir_uses_env_override ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_none_when_empty_string ... ok
[INFO] [stdout] test config::tests::test_effective_model_unknown_provider ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_oxo_api_token_legacy ... ok
[INFO] [stdout] test config::tests::test_effective_docs_auto_update_default ... ok
[INFO] [stdout] test config::tests::test_effective_docs_auto_update_from_env ... ok
[INFO] [stdout] test config::tests::test_effective_max_tokens_default ... ok
[INFO] [stdout] test config::tests::test_effective_max_tokens_from_env ... ok
[INFO] [stdout] test config::tests::test_effective_model_anthropic ... ok
[INFO] [stdout] test config::tests::test_config_set_model ... ok
[INFO] [stdout] test config::tests::test_effective_model_from_config ... ok
[INFO] [stdout] test config::tests::test_effective_model_from_config_value ... ok
[INFO] [stdout] test config::tests::test_effective_model_github_copilot ... ok
[INFO] [stdout] test config::tests::test_effective_api_token_openai_legacy_env ... ok
[INFO] [stdout] test config::tests::test_effective_provider_default ... ok
[INFO] [stdout] test config::tests::test_effective_provider_from_config ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_base_from_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_base_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_base_provider_default ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_token_from_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_base_stored_config ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_token_openai_legacy_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_token_anthropic_legacy_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_token_unset ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_token_stored_config ... ok
[INFO] [stdout] test config::tests::test_effective_source_docs_auto_update_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_docs_auto_update_default ... ok
[INFO] [stdout] test config::tests::test_effective_source_max_tokens_default ... ok
[INFO] [stdout] test config::tests::test_effective_source_api_token_unset_no_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_max_tokens_from_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_provider_default ... ok
[INFO] [stdout] test config::tests::test_effective_model_ollama ... ok
[INFO] [stdout] test config::tests::test_effective_source_max_tokens_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_model_from_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_temperature_from_env ... ok
[INFO] [stdout] test config::tests::test_effective_temperature_default ... ok
[INFO] [stdout] test config::tests::test_effective_temperature_from_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_temperature_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_unknown_key_errors ... ok
[INFO] [stdout] test config::tests::test_effective_value_all_known_keys ... ok
[INFO] [stdout] test config::tests::test_mcp_config_default_empty ... ok
[INFO] [stdout] test config::tests::test_license_config_default ... ok
[INFO] [stdout] test config::tests::test_effective_source_model_env ... ok
[INFO] [stdout] test config::tests::test_effective_source_model_stored_config ... ok
[INFO] [stdout] test config::tests::test_effective_source_provider_from_env ... ok
[INFO] [stdout] test docs::tests::test_clean_version_string_v_prefix ... ok
[INFO] [stdout] test docs::tests::test_clean_version_string_tool_prefix ... ok
[INFO] [stdout] test docs::tests::test_clean_version_string_with_prefix ... ok
[INFO] [stdout] test config::tests::test_mcp_server_config_name_falls_back_to_url ... ok
[INFO] [stdout] test docs::tests::test_deduplicate_check_empty_help ... ok
[INFO] [stdout] test config::tests::test_effective_source_temperature_default ... ok
[INFO] [stdout] test config::tests::test_mcp_server_config_name_non_empty ... ok
[INFO] [stdout] test docs::tests::test_clean_version_string ... ok
[INFO] [stdout] test docs::tests::test_clean_version_string_no_match ... ok
[INFO] [stdout] test docs::tests::test_extract_useful_output_empty_returns_error ... ok
[INFO] [stdout] test docs::tests::test_deduplicate_check_not_present ... ok
[INFO] [stdout] test docs::tests::test_deduplicate_check_verbatim ... ok
[INFO] [stdout] test docs::tests::test_extract_useful_output_combines_both_streams ... ok
[INFO] [stdout] test docs::tests::test_cache_path_sanitizes_special_chars ... ok
[INFO] [stdout] test docs::tests::test_deduplicate_check_partial_overlap ... ok
[INFO] [stdout] test docs::tests::test_extract_useful_output_falls_back_to_stderr ... ok
[INFO] [stdout] test docs::tests::test_extract_useful_output_short_error_text_rejected ... ok
[INFO] [stdout] test docs::tests::test_extract_useful_output_uses_stdout ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_file_directory_is_error ... ok
[INFO] [stdout] test docs::tests::test_extract_useful_output_truncates_long_output ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_file_txt ... ok
[INFO] [stdout] test docs::tests::test_fetch_remote_rejects_non_http_url ... ok
[INFO] [stdout] test docs::tests::test_is_likely_error_command_not_found ... ok
[INFO] [stdout] test docs::tests::test_is_likely_error_error_with_usage_is_help ... ok
[INFO] [stdout] test docs::tests::test_is_likely_error_false_for_help ... ok
[INFO] [stdout] test docs::tests::test_is_likely_error_invalid_option ... ok
[INFO] [stdout] test config::tests::test_effective_source_docs_auto_update_from_env ... ok
[INFO] [stdout] test docs::tests::test_fetch_remote_rejects_ftp_url ... ok
[INFO] [stdout] test docs::tests::test_is_likely_error_no_such ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_dir_file_path_is_error ... ok
[INFO] [stdout] test docs::tests::test_is_likely_error_no_such_file ... ok
[INFO] [stdout] test docs::tests::test_is_likely_error_normal_output ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_dir_collects_rst_and_html ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_dir_collects_md_files ... ok
[INFO] [stdout] test docs::tests::test_is_likely_error_true ... ok
[INFO] [stdout] test docs::tests::test_list_cached_tools ... ok
[INFO] [stdout] test docs::tests::test_list_cached_tools_empty_dir ... ok
[INFO] [stdout] test docs::tests::test_looks_like_version_invalid ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_dir_empty_dir_errors ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_dir_not_found ... ok
[INFO] [stdout] test docs::tests::test_looks_like_version_multidigit ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_file_md ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_file_not_found ... ok
[INFO] [stdout] test docs::tests::test_looks_like_version_no_dot ... ok
[INFO] [stdout] test docs::tests::test_looks_like_version_prerelease ... ok
[INFO] [stdout] test docs::tests::test_looks_like_version_too_long ... ok
[INFO] [stdout] test docs::tests::test_looks_like_version_valid ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_file_unsupported_extension ... ok
[INFO] [stdout] test docs::tests::test_fetch_from_file_html_strips_tags ... ok
[INFO] [stdout] test docs::tests::test_strip_embedded_help_section_no_section ... ok
[INFO] [stdout] test docs::tests::test_strip_embedded_help_section_removes_section ... ok
[INFO] [stdout] test docs::tests::test_strip_html_no_tags ... ok
[INFO] [stdout] test docs::tests::test_strip_html_self_closing_tags ... ok
[INFO] [stdout] test docs::tests::test_strip_html_tags ... ok
[INFO] [stdout] test docs::tests::test_strip_html_nested_tags ... ok
[INFO] [stdout] test docs::tests::test_strip_embedded_help_section_crlf ... ok
[INFO] [stdout] test docs::tests::test_strip_html_tags_plain_text_unchanged ... ok
[INFO] [stdout] test docs::tests::test_strip_html_tags_nested ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_combined_all_fields ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_combined_appends_help_not_in_cached ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_combined_deduplicates_help_in_cached ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_combined_includes_version ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_combined_only_cached ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_combined_only_help ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_is_empty_false_with_cached ... ok
[INFO] [stdout] test docs::tests::test_remove_cache ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_is_empty_false_with_help ... ok
[INFO] [stdout] test docs::tests::test_truncate_doc_empty ... ok
[INFO] [stdout] test docs::tests::test_truncate_doc_short_content ... ok
[INFO] [stdout] test docs::tests::test_truncate_doc_exact_limit ... ok
[INFO] [stdout] test docs::tests::test_validate_tool_name_empty ... ok
[INFO] [stdout] test docs::tests::test_validate_tool_name_invalid_chars ... ok
[INFO] [stdout] test docs::tests::test_truncate_doc_long_content ... ok
[INFO] [stdout] test docs::tests::test_validate_tool_name_path_traversal ... ok
[INFO] [stdout] test docs::tests::test_validate_tool_name_too_long ... ok
[INFO] [stdout] test docs::tests::test_validate_tool_name_valid ... ok
[INFO] [stdout] test docs::tests::test_validate_tool_name_with_dashes_and_underscores ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_is_empty_true ... ok
[INFO] [stdout] test docs::tests::test_validate_tool_name_with_dots ... ok
[INFO] [stdout] test docs::tests::test_validate_tool_name_with_parent_traversal ... ok
[INFO] [stdout] test docs::tests::test_remove_cache_nonexistent_is_ok ... ok
[INFO] [stdout] test docs::tests::test_save_and_load_cache ... ok
[INFO] [stdout] test docs::tests::test_validate_tool_name_with_slash ... ok
[INFO] [stdout] test engine::tests::test_execute_dry_run_with_env_field ... ok
[INFO] [stdout] test engine::tests::test_compute_phases_broken_cycle_stops ... ok
[INFO] [stdout] test engine::tests::test_compute_phases_empty ... ok
[INFO] [stdout] test engine::tests::test_compute_phases_diamond_dag ... ok
[INFO] [stdout] test engine::tests::test_compute_phases_complex_pipeline ... ok
[INFO] [stdout] test engine::tests::test_compute_phases_linear_chain ... ok
[INFO] [stdout] test engine::tests::test_compute_phases_single_task ... ok
[INFO] [stdout] test engine::tests::test_compute_phases_parallel_tasks ... ok
[INFO] [stdout] test engine::tests::test_compute_phases_with_gather ... ok
[INFO] [stdout] test engine::tests::test_env_field_parsing_and_expansion ... ok
[INFO] [stdout] test engine::tests::test_execute_dry_run_gather_step_ok ... ok
[INFO] [stdout] test engine::tests::test_execute_dry_run_no_tasks_ok ... ok
[INFO] [stdout] test engine::tests::test_execute_dry_run_linear_chain_ok ... ok
[INFO] [stdout] test engine::tests::test_execute_dry_run_single_task_ok ... ok
[INFO] [stdout] test docs::tests::test_tool_docs_is_empty_with_empty_strings ... ok
[INFO] [stdout] test engine::tests::test_expand_gather_depends_on_all_instances ... ok
[INFO] [stdout] test engine::tests::test_format_elapsed_minutes ... ok
[INFO] [stdout] test engine::tests::test_expand_wildcard_steps ... ok
[INFO] [stdout] test engine::tests::test_expand_simple_no_wildcards ... ok
[INFO] [stdout] test engine::tests::test_expand_params_substitution ... ok
[INFO] [stdout] test engine::tests::test_format_elapsed_zero ... ok
[INFO] [stdout] test engine::tests::test_format_elapsed_exactly_one_hour ... ok
[INFO] [stdout] test engine::tests::test_format_elapsed_sub_second ... ok
[INFO] [stdout] test engine::tests::test_format_elapsed_exactly_one_minute ... ok
[INFO] [stdout] test engine::tests::test_format_elapsed_seconds ... ok
[INFO] [stdout] test engine::tests::test_expand_chipseq_template ... ok
[INFO] [stdout] test engine::tests::test_expand_unknown_dep_silently_drops_deps ... ok
[INFO] [stdout] test engine::tests::test_format_elapsed_hours ... ok
[INFO] [stdout] test engine::tests::test_format_elapsed_sub_second_millis ... ok
[INFO] [stdout] test engine::tests::test_format_toml_includes_env ... ok
[INFO] [stdout] test engine::tests::test_format_toml_long_cmd_multiline ... ok
[INFO] [stdout] test engine::tests::test_format_toml_empty_workflow ... ok
[INFO] [stdout] test engine::tests::test_from_str_content_invalid_toml ... ok
[INFO] [stdout] test engine::tests::test_format_toml_with_wildcards ... ok
[INFO] [stdout] test engine::tests::test_format_toml_with_depends_on ... ok
[INFO] [stdout] test engine::tests::test_from_str_content_valid ... ok
[INFO] [stdout] test engine::tests::test_from_str_content_empty ... ok
[INFO] [stdout] test engine::tests::test_format_toml_simple ... ok
[INFO] [stdout] test engine::tests::test_is_up_to_date_missing_output_returns_false ... ok
[INFO] [stdout] test engine::tests::test_format_toml_gather_step ... ok
[INFO] [stdout] test engine::tests::test_format_toml_with_params ... ok
[INFO] [stdout] test engine::tests::test_print_dag_phases_no_panic_empty_vec ... ok
[INFO] [stdout] test engine::tests::test_is_up_to_date_no_outputs_returns_false ... ok
[INFO] [stdout] test engine::tests::test_print_task_dry_run_gather_no_panic ... ok
[INFO] [stdout] test engine::tests::test_is_up_to_date_output_exists_no_inputs ... ok
[INFO] [stdout] test engine::tests::test_print_dag_phases_no_panic_with_tasks ... ok
[INFO] [stdout] test engine::tests::test_expand_rnaseq_template ... ok
[INFO] [stdout] test engine::tests::test_mtime_nonexistent_file ... ok
[INFO] [stdout] test engine::tests::test_print_dag_phases_many_tasks_per_group ... ok
[INFO] [stdout] test engine::tests::test_print_dag_phases_no_panic_empty ... ok
[INFO] [stdout] test engine::tests::test_print_dag_phases_no_panic_linear ... ok
[INFO] [stdout] test engine::tests::test_mtime_existing_file ... ok
[INFO] [stdout] test engine::tests::test_expand_longreads_template ... ok
[INFO] [stdout] test engine::tests::test_print_task_dry_run_no_panic_with_io ... ok
[INFO] [stdout] test engine::tests::test_print_task_dry_run_no_panic ... ok
[INFO] [stdout] test engine::tests::test_print_verify_report_warnings_only ... ok
[INFO] [stdout] test engine::tests::test_print_verify_report_no_issues ... ok
[INFO] [stdout] test engine::tests::test_substitute_bare_param_key ... ok
[INFO] [stdout] test engine::tests::test_print_verify_report_mixed_diags ... ok
[INFO] [stdout] test engine::tests::test_substitute_no_placeholders ... ok
[INFO] [stdout] test engine::tests::test_print_verify_report_with_single_error ... ok
[INFO] [stdout] test engine::tests::test_substitute_wildcard ... ok
[INFO] [stdout] test engine::tests::test_task_id_multiple_bindings_sorted ... ok
[INFO] [stdout] test engine::tests::test_substitute_wildcard_takes_precedence_over_param ... ok
[INFO] [stdout] test engine::tests::test_task_id_no_bindings ... ok
[INFO] [stdout] test engine::tests::test_print_task_dry_run_with_env ... ok
[INFO] [stdout] test engine::tests::test_is_up_to_date_output_older_than_input ... ok
[INFO] [stdout] test engine::tests::test_print_verify_report_no_diags ... ok
[INFO] [stdout] test engine::tests::test_print_verify_report_with_errors ... ok
[INFO] [stdout] test engine::tests::test_task_id_single_binding ... ok
[INFO] [stdout] test engine::tests::test_to_nextflow_gather_step ... ok
[INFO] [stdout] test engine::tests::test_to_nextflow_with_params ... ok
[INFO] [stdout] test engine::tests::test_to_nextflow_with_wildcards ... ok
[INFO] [stdout] test engine::tests::test_to_snakemake_basic ... ok
[INFO] [stdout] test engine::tests::test_to_nextflow_basic ... ok
[INFO] [stdout] test engine::tests::test_substitute_param ... ok
[INFO] [stdout] test engine::tests::test_to_snakemake_with_params ... ok
[INFO] [stdout] test engine::tests::test_to_snakemake_with_wildcards ... ok
[INFO] [stdout] test engine::tests::test_uses_wildcards_in_inputs ... ok
[INFO] [stdout] test engine::tests::test_uses_wildcards_in_outputs ... ok
[INFO] [stdout] test engine::tests::test_verify_diag_level_display ... ok
[INFO] [stdout] test engine::tests::test_verify_empty_step_cmd_produces_error ... ok
[INFO] [stdout] test engine::tests::test_verify_undefined_params_placeholder_produces_warning ... ok
[INFO] [stdout] test engine::tests::test_verify_duplicate_step_name_produces_error ... ok
[INFO] [stdout] test engine::tests::test_verify_duplicate_step_name_error ... ok
[INFO] [stdout] test engine::tests::test_verify_forward_dependency_warning ... ok
[INFO] [stdout] test engine::tests::test_verify_empty_step_cmd_error ... ok
[INFO] [stdout] test engine::tests::test_verify_undefined_wildcard_warning ... ok
[INFO] [stdout] test engine::tests::test_to_nextflow_generated_from_builtin_templates ... ok
[INFO] [stdout] test engine::tests::test_verify_unknown_dependency_error ... ok
[INFO] [stdout] test engine::tests::test_verify_empty_workflow_name_produces_warning ... ok
[INFO] [stdout] test engine::tests::test_verify_empty_workflow_name_warning ... ok
[INFO] [stdout] test engine::tests::test_verify_unknown_depends_on_produces_error ... ok
[INFO] [stdout] test engine::tests::test_all_builtin_templates_parse_and_expand ... ok
[INFO] [stdout] test engine::tests::test_verify_valid_workflow_no_diags ... ok
[INFO] [stdout] test engine::tests::test_uses_wildcards_false_no_match ... ok
[INFO] [stdout] test engine::tests::test_uses_wildcards_true_in_cmd ... ok
[INFO] [stdout] test engine::tests::test_verify_shell_var_expansion_not_flagged ... ok
[INFO] [stdout] test engine::tests::test_verify_undefined_params_warning ... ok
[INFO] [stdout] test engine::tests::test_visualize_workflow_simple ... ok
[INFO] [stdout] test engine::tests::test_visualize_workflow_with_wildcards ... ok
[INFO] [stdout] test engine::tests::test_wildcard_combinations_empty ... ok
[INFO] [stdout] test engine::tests::test_wildcard_combinations_single ... ok
[INFO] [stdout] test engine::tests::test_wildcard_combinations_two_keys ... ok
[INFO] [stdout] test engine::tests::test_workflow_def_from_file_not_found ... ok
[INFO] [stdout] test engine::tests::test_verify_undefined_placeholder_produces_warning ... ok
[INFO] [stdout] test engine::tests::test_workflow_def_step_with_inputs_outputs ... ok
[INFO] [stdout] test error::tests::test_config_error_display ... ok
[INFO] [stdout] test error::tests::test_doc_fetch_error_display ... ok
[INFO] [stdout] test error::tests::test_execution_error_display ... ok
[INFO] [stdout] test engine::tests::test_verify_valid_workflow ... ok
[INFO] [stdout] test error::tests::test_from_io_error ... ok
[INFO] [stdout] test engine::tests::test_verify_forward_dep_ordering_warning ... ok
[INFO] [stdout] test error::tests::test_index_error_display ... ok
[INFO] [stdout] test error::tests::test_from_json_error ... ok
[INFO] [stdout] test error::tests::test_llm_error_display ... ok
[INFO] [stdout] test engine::tests::test_workflow_def_from_file ... ok
[INFO] [stdout] test error::tests::test_from_toml_de_error ... ok
[INFO] [stdout] test error::tests::test_result_type_alias ... ok
[INFO] [stdout] test error::tests::test_tool_not_found_display ... ok
[INFO] [stdout] test handlers::tests::test_401_suggestion ... ok
[INFO] [stdout] test handlers::tests::test_403_suggestion ... ok
[INFO] [stdout] test handlers::tests::test_http_request_failed_suggestion ... ok
[INFO] [stdout] test handlers::tests::test_404_suggestion_contains_api_base ... ok
[INFO] [stdout] test handlers::tests::test_parse_api_response_suggestion ... ok
[INFO] [stdout] test handlers::tests::test_no_api_token_suggestions ... ok
[INFO] [stdout] test handlers::tests::test_https_suggestion ... ok
[INFO] [stdout] test handlers::tests::test_unknown_error_returns_generic_suggestion ... ok
[INFO] [stdout] test handlers::tests::test_print_index_table_no_panic_with_entries ... ok
[INFO] [stdout] test handlers::tests::test_print_index_table_no_panic_empty ... ok
[INFO] [stdout] test handlers::tests::test_with_source_format ... ok
[INFO] [stdout] test handlers::tests::test_with_source_contains_value_and_source ... ok
[INFO] [stdout] test handlers::tests::test_personal_access_token_suggestion ... ok
[INFO] [stdout] test history::tests::test_command_provenance_default ... ok
[INFO] [stdout] test history::tests::test_dry_run_entry_serialization ... ok
[INFO] [stdout] test history::tests::test_old_history_entry_without_server_still_deserializes ... ok
[INFO] [stdout] test history::tests::test_history_entry_serializes_without_null_provenance ... ok
[INFO] [stdout] test history::tests::test_append_and_load_all ... ok
[INFO] [stdout] test history::tests::test_server_field_omitted_in_json_when_none ... ok
[INFO] [stdout] test index::tests::test_docindex_default_empty ... ok
[INFO] [stdout] test history::tests::test_server_field_present_in_json_when_set ... ok
[INFO] [stdout] test history::tests::test_server_field_is_none_for_local_runs ... ok
[INFO] [stdout] test engine::tests::test_verify_all_builtin_templates_clean ... ok
[INFO] [stdout] test history::tests::test_server_dry_run_entry ... ok
[INFO] [stdout] test history::tests::test_clear_removes_entries ... ok
[INFO] [stdout] test history::tests::test_load_all_empty_when_no_file ... ok
[INFO] [stdout] test index::tests::test_docindex_get_existing ... ok
[INFO] [stdout] test index::tests::test_docindex_get_missing ... ok
[INFO] [stdout] test index::tests::test_docindex_remove_existing ... ok
[INFO] [stdout] test index::tests::test_docindex_remove_leaves_others_intact ... ok
[INFO] [stdout] test history::tests::test_provenance_round_trip ... ok
[INFO] [stdout] test index::tests::test_docindex_load_returns_empty_when_no_file ... ok
[INFO] [stdout] test index::tests::test_docindex_remove_missing_returns_false ... ok
[INFO] [stdout] test index::tests::test_docindex_upsert_replaces_existing_entry ... ok
[INFO] [stdout] test index::tests::test_index_entry_no_version_serializes ... ok
[INFO] [stdout] test index::tests::test_index_entry_serialization ... ok
[INFO] [stdout] test index::tests::test_docindex_upsert_adds_new_entry ... ok
[INFO] [stdout] test job::tests::test_builtin_job_find_bam_command ... ok
[INFO] [stdout] test index::tests::test_docindex_save_load_round_trip ... ok
[INFO] [stdout] test index::tests::test_index_manager_list_after_upsert ... ok
[INFO] [stdout] test job::tests::test_builtin_job_git_status_command ... ok
[INFO] [stdout] test job::tests::test_builtin_job_qstat_sge_command ... ok
[INFO] [stdout] test job::tests::test_builtin_job_uptime_command ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_all_have_at_least_one_tag ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_all_have_names ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_all_have_non_empty_descriptions ... ok
[INFO] [stdout] test index::tests::test_index_manager_remove_existing ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_bioinformatics_tag_filter ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_dev_tag_filter ... ok
[INFO] [stdout] test job::tests::test_builtin_job_docker_all_command ... ok
[INFO] [stdout] test job::tests::test_builtin_job_k8s_svc_command ... ok
[INFO] [stdout] test index::tests::test_load_migrates_concatenated_objects_no_separator ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_non_empty ... ok
[INFO] [stdout] test index::tests::test_load_migrates_concatenated_objects_with_newline ... ok
[INFO] [stdout] test index::tests::test_index_manager_list_empty ... ok
[INFO] [stdout] test index::tests::test_index_manager_remove_nonexistent_errors ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_sge_tag_filter ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_tag_filter ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_unique_names ... ok
[INFO] [stdout] test job::tests::test_interpolate_basename ... ok
[INFO] [stdout] test job::tests::test_builtin_jobs_total_count_at_least_50 ... ok
[INFO] [stdout] test job::tests::test_interpolate_curly_braces_does_not_conflict_with_nr ... ok
[INFO] [stdout] test job::tests::test_interpolate_curly_braces_alias_for_item ... ok
[INFO] [stdout] test job::tests::test_interpolate_empty_item_leaves_built_ins_blank ... ok
[INFO] [stdout] test job::tests::test_interpolate_item_and_line ... ok
[INFO] [stdout] test job::tests::test_interpolate_curly_braces_with_vars ... ok
[INFO] [stdout] test job::tests::test_interpolate_item_without_extension ... ok
[INFO] [stdout] test job::tests::test_interpolate_dir_for_nested_item ... ok
[INFO] [stdout] test job::tests::test_interpolate_no_item_placeholders ... ok
[INFO] [stdout] test job::tests::test_interpolate_dir_for_root_item ... ok
[INFO] [stdout] test job::tests::test_interpolate_no_placeholders_unchanged ... ok
[INFO] [stdout] test job::tests::test_interpolate_multiple_occurrences ... ok
[INFO] [stdout] test job::tests::test_interpolate_nr ... ok
[INFO] [stdout] test job::tests::test_interpolate_stem_for_double_extension ... ok
[INFO] [stdout] test job::tests::test_interpolate_user_vars ... ok
[INFO] [stdout] test job::tests::test_interpolate_vars_before_builtins_shadowing ... ok
[INFO] [stdout] test job::tests::test_job_entry_default_fields ... ok
[INFO] [stdout] test job::tests::test_job_entry_no_description_skip_serialized ... ok
[INFO] [stdout] test job::tests::test_job_entry_empty_tags_skip_serialized ... ok
[INFO] [stdout] test job::tests::test_interpolate_path_parts ... ok
[INFO] [stdout] test job::tests::test_job_file_default_is_empty ... ok
[INFO] [stdout] test job::tests::test_job_run_all_fields ... ok
[INFO] [stdout] test job::tests::test_job_run_store_round_trip ... ok
[INFO] [stdout] test job::tests::test_job_entry_with_schedule_round_trip ... ok
[INFO] [stdout] test job::tests::test_parse_var_empty_key ... ok
[INFO] [stdout] test job::tests::test_job_entry_with_tags_round_trip ... ok
[INFO] [stdout] test job::tests::test_job_entry_with_all_fields ... ok
[INFO] [stdout] test job::tests::test_job_run_store_with_server_field_round_trip ... ok
[INFO] [stdout] test job::tests::test_parse_var_empty_value ... ok
[INFO] [stdout] test job::tests::test_job_file_round_trip ... ok
[INFO] [stdout] test job::tests::test_new_builtin_jobs_exist ... ok
[INFO] [stdout] test job::tests::test_parse_var_missing_equals ... ok
[INFO] [stdout] test job::tests::test_job_entry_serialization_round_trip ... ok
[INFO] [stdout] test engine::tests::test_is_up_to_date_output_newer_than_input ... ok
[INFO] [stdout] test job::tests::test_read_input_list_skips_blank_and_comments ... ok
[INFO] [stdout] test job::tests::test_parse_var_still_allows_value_with_equals ... ok
[INFO] [stdout] test job::tests::test_parse_var_valid ... ok
[INFO] [stdout] test job::tests::test_parse_var_value_contains_equals ... ok
[INFO] [stdout] test license::tests::test_default_license_candidates_deduplicate_same_path ... ok
[INFO] [stdout] test job::tests::test_read_input_list_all_comments_returns_empty ... ok
[INFO] [stdout] test job::tests::test_read_input_list_nonexistent_file_returns_error ... ok
[INFO] [stdout] test job::tests::test_read_input_list_preserves_whitespace_within_items ... ok
[INFO] [stdout] test license::tests::test_default_license_candidates_include_legacy_unix_fallback ... ok
[INFO] [stdout] test license::tests::test_find_license_path_from_cli_arg_takes_precedence_over_env ... ok
[INFO] [stdout] test license::tests::test_find_license_path_from_env_var ... ok
[INFO] [stdout] test license::tests::test_license_type_display_academic ... ok
[INFO] [stdout] test license::tests::test_invalid_public_key_wrong_length_fails ... ok
[INFO] [stdout] test license::tests::test_invalid_signature_wrong_length_fails ... ok
[INFO] [stdout] test license::tests::test_license_type_display_commercial ... ok
[INFO] [stdout] test license::tests::test_invalid_public_key_base64_fails ... ok
[INFO] [stdout] test license::tests::test_legacy_unix_license_path_none ... ok
[INFO] [stdout] test license::tests::test_legacy_unix_license_path_some ... ok
[INFO] [stdout] test license::tests::test_invalid_signature_encoding_fails ... ok
[INFO] [stdout] test license::tests::test_no_license_path_returns_not_found ... ok
[INFO] [stdout] test license::tests::test_roundtrip_json_serialization ... ok
[INFO] [stdout] test license::tests::test_wrong_schema_fails ... ok
[INFO] [stdout] test license::tests::test_verify_license_embedded_key_wrong_schema_fails ... ok
[INFO] [stdout] test license::tests::test_tampered_field_fails ... ok
[INFO] [stdout] test engine::tests::test_to_snakemake_generated_from_builtin_templates ... ok
[INFO] [stdout] test license::tests::test_tampered_signature_fails ... ok
[INFO] [stdout] test license::tests::test_valid_academic_license_passes ... ok
[INFO] [stdout] test license::tests::test_valid_commercial_license_passes ... ok
[INFO] [stdout] test license::tests::test_contact_email_optional_in_signing ... ok
[INFO] [stdout] test index::tests::test_load_migrates_bare_entries_array ... ok
[INFO] [stdout] test history::tests::test_mixed_local_and_server_entries ... FAILED
[INFO] [stdout] test history::tests::test_clear_idempotent_on_empty ... ok
[INFO] [stdout] test history::tests::test_server_field_round_trip_via_store ... ok
[INFO] [stdout] test job::tests::test_read_input_list_io_error_propagates ... FAILED
[INFO] [stdout] test license::tests::test_load_and_verify_valid_license ... ok
[INFO] [stdout] test llm::tests::test_build_prompt_basic ... ok
[INFO] [stdout] test llm::tests::test_build_prompt_empty_task ... ok
[INFO] [stdout] test llm::tests::test_build_prompt_format_instructions ... ok
[INFO] [stdout] test llm::tests::test_build_prompt_truncates_long_docs ... ok
[INFO] [stdout] test llm::tests::test_build_prompt_with_skill ... ok
[INFO] [stdout] test llm::tests::test_build_retry_prompt_contains_prev_response ... ok
[INFO] [stdout] test llm::tests::test_build_retry_prompt_format ... ok
[INFO] [stdout] test llm::tests::test_build_skill_generate_prompt_contains_tool ... ok
[INFO] [stdout] test llm::tests::test_build_skill_generate_prompt_format ... ok
[INFO] [stdout] test llm::tests::test_build_skill_polish_prompt_contains_tool_and_content ... ok
[INFO] [stdout] test llm::tests::test_build_skill_verify_prompt_contains_tool_and_content ... ok
[INFO] [stdout] test llm::tests::test_build_task_optimization_prompt_contains_tool_and_task ... ok
[INFO] [stdout] test llm::tests::test_build_task_optimization_prompt_format ... ok
[INFO] [stdout] test llm::tests::test_build_verification_prompt_contains_key_info ... ok
[INFO] [stdout] test llm::tests::test_build_verification_prompt_missing_file ... ok
[INFO] [stdout] test llm::tests::test_build_verification_prompt_truncates_long_stderr ... ok
[INFO] [stdout] test llm::tests::test_chat_message_clone ... ok
[INFO] [stdout] test llm::tests::test_chat_message_debug ... ok
[INFO] [stdout] test llm::tests::test_chat_request_debug ... ok
[INFO] [stdout] test llm::tests::test_chat_request_serializes_correctly ... ok
[INFO] [stdout] test llm::tests::test_chat_response_deserializes_correctly ... ok
[INFO] [stdout] test license::tests::test_invalid_json_returns_parse_error ... ok
[INFO] [stdout] test llm::tests::test_chat_response_empty_choices ... ok
[INFO] [stdout] test llm::tests::test_is_valid_suggestion_empty_args_but_has_explanation ... ok
[INFO] [stdout] test llm::tests::test_is_valid_suggestion_empty_explanation ... ok
[INFO] [stdout] test llm::tests::test_is_valid_suggestion_with_explanation ... ok
[INFO] [stdout] test llm::tests::test_llm_command_suggestion_debug ... ok
[INFO] [stdout] test llm::tests::test_llm_run_verification_clone ... ok
[INFO] [stdout] test llm::tests::test_llm_run_verification_debug ... ok
[INFO] [stdout] test llm::tests::test_llm_skill_verification_clone ... ok
[INFO] [stdout] test llm::tests::test_llm_skill_verification_debug ... ok
[INFO] [stdout] test llm::tests::test_llm_verification_result_debug ... ok
[INFO] [stdout] test llm::tests::test_parse_response_basic ... ok
[INFO] [stdout] test llm::tests::test_parse_response_empty_args ... ok
[INFO] [stdout] test llm::tests::test_parse_response_no_explanation ... ok
[INFO] [stdout] test llm::tests::test_parse_response_none_args ... ok
[INFO] [stdout] test llm::tests::test_parse_response_raw_response_stored ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_backslash_escape ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_backslash_space ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_double_quoted ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_empty ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_equals_syntax ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_mixed_quotes ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_multiple_spaces ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_nested_quotes ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_simple ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_single_quoted ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_tab_as_separator ... ok
[INFO] [stdout] test llm::tests::test_parse_shell_args_whitespace_only ... ok
[INFO] [stdout] test llm::tests::test_parse_skill_verify_response_empty ... ok
[INFO] [stdout] test llm::tests::test_parse_skill_verify_response_fail ... ok
[INFO] [stdout] test llm::tests::test_parse_skill_verify_response_pass ... ok
[INFO] [stdout] test llm::tests::test_parse_skill_verify_response_pass_with_summary ... ok
[INFO] [stdout] test llm::tests::test_parse_skill_verify_response_with_issues_and_suggestions ... ok
[INFO] [stdout] test llm::tests::test_parse_verification_response_empty ... ok
[INFO] [stdout] test llm::tests::test_parse_verification_response_failure ... ok
[INFO] [stdout] test llm::tests::test_parse_verification_response_only_summary ... ok
[INFO] [stdout] test llm::tests::test_parse_verification_response_success ... ok
[INFO] [stdout] test llm::tests::test_parse_verification_response_warning ... ok
[INFO] [stdout] test llm::tests::test_parse_verification_response_with_issues_and_suggestions ... ok
[INFO] [stdout] test llm::tests::test_skill_reviewer_system_prompt_not_empty ... ok
[INFO] [stdout] test llm::tests::test_strip_markdown_fences_bare_fence ... ok
[INFO] [stdout] test llm::tests::test_strip_markdown_fences_no_closing_fence ... ok
[INFO] [stdout] test llm::tests::test_strip_markdown_fences_no_fence ... ok
[INFO] [stdout] test llm::tests::test_strip_markdown_fences_with_fence ... ok
[INFO] [stdout] test llm::tests::test_strip_markdown_fences_with_md_fence ... ok
[INFO] [stdout] test llm::tests::test_strip_markdown_fences_with_toml_fence ... ok
[INFO] [stdout] test llm::tests::test_strip_markdown_fences_with_yaml_fence ... ok
[INFO] [stdout] test llm::tests::test_system_prompt_not_empty ... ok
[INFO] [stdout] test llm::tests::test_verification_system_prompt_not_empty ... ok
[INFO] [stdout] test llm::tests::test_llm_client_new ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_optimize_task_valid_response ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_verify_configuration_success ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_suggest_command_invalid_format_retries ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_request_with_system_empty_choices ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_optimize_task_falls_back_on_bad_format ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_fetch_skill_not_found_returns_none ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_suggest_command_success ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_suggest_command_http_error_propagated ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_fetch_skill_falls_back_to_list_scan ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_generate_shell_command_bad_format_falls_back ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_generate_skill_template ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_initialize_success ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_verify_skill_pass ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_request_with_system_anthropic_provider ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_generate_shell_command_success ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_verify_run_result_success ... ok
[INFO] [stdout] test llm::tests::mock_tests::test_polish_skill_strips_fences ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_initialize_http_error ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_initialize_missing_server_info_uses_url ... ok
[INFO] [stdout] test mcp::tests::test_endpoint_with_path_prefix ... ok
[INFO] [stdout] test mcp::tests::test_mcp_server_config_name_empty_falls_back_to_url ... ok
[INFO] [stdout] test mcp::tests::test_mcp_server_config_name_with_name_field ... ok
[INFO] [stdout] test mcp::tests::test_mcp_skill_entry_clone ... ok
[INFO] [stdout] test mcp::tests::test_mcp_skill_entry_debug ... ok
[INFO] [stdout] test mcp::tests::test_mcp_timeout_constant ... ok
[INFO] [stdout] test mcp::tests::test_rpc_request_serialization ... ok
[INFO] [stdout] test mcp::tests::test_rpc_request_with_params_serialization ... ok
[INFO] [stdout] test mcp::tests::test_rpc_response_error_deserialization ... ok
[INFO] [stdout] test mcp::tests::test_rpc_response_no_id_deserialization ... ok
[INFO] [stdout] test mcp::tests::test_rpc_response_success_deserialization ... ok
[INFO] [stdout] test runner::tests::test_build_command_string_escapes_single_quotes_in_args ... ok
[INFO] [stdout] test runner::tests::test_build_command_string_no_args ... ok
[INFO] [stdout] test runner::tests::test_build_command_string_quotes_args_with_spaces ... ok
[INFO] [stdout] test runner::tests::test_build_command_string_quotes_args_with_special_chars ... ok
[INFO] [stdout] test runner::tests::test_build_command_string_simple_args ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_bam_flag ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_deduplicates ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_equals_form ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_equals_form_bam ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_equals_form_empty_value_ignored ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_long_flag ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_no_dot_excluded ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_positional ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_positional_with_ampersand_excluded ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_positional_with_pipe_excluded ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_fetch_skill_via_canonical_uri ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_short_b_flag ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_positional_with_semicolon_excluded ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_short_flag ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_skips_flags ... ok
[INFO] [stdout] test runner::tests::test_detect_output_files_truncates_at_20 ... ok
[INFO] [stdout] test runner::tests::test_detect_tool_version_echo_command ... ok
[INFO] [stdout] test runner::tests::test_detect_tool_version_nonexistent_tool_returns_none ... ok
[INFO] [stdout] test runner::tests::test_make_spinner_creates_without_panic ... ok
[INFO] [stdout] test runner::tests::test_detect_tool_version_existing_tool ... ok
[INFO] [stdout] test runner::tests::test_make_spinner_with_empty_message ... ok
[INFO] [stdout] test runner::tests::test_needs_quoting_simple_arg_false ... ok
[INFO] [stdout] test runner::tests::test_needs_quoting_special_chars_true ... ok
[INFO] [stdout] test runner::tests::test_needs_quoting_tab_true ... ok
[INFO] [stdout] test runner::tests::test_needs_quoting_space_true ... ok
[INFO] [stdout] test runner::tests::test_sha256_hex_deterministic ... ok
[INFO] [stdout] test runner::tests::test_sha256_hex_different_inputs_produce_different_hashes ... ok
[INFO] [stdout] test runner::tests::test_sha256_hex_empty_string ... ok
[INFO] [stdout] test runner::tests::test_sha256_hex_hello_world ... ok
[INFO] [stdout] test sanitize::tests::test_preserve_relative_paths ... ok
[INFO] [stdout] test sanitize::tests::test_redact_env_tokens ... ok
[INFO] [stdout] test sanitize::tests::test_redact_env_tokens_multiline ... ok
[INFO] [stdout] test sanitize::tests::test_redact_env_tokens_no_match ... ok
[INFO] [stdout] test sanitize::tests::test_redact_env_tokens_secret ... ok
[INFO] [stdout] test sanitize::tests::test_redact_multiple_paths ... ok
[INFO] [stdout] test sanitize::tests::test_redact_paths_empty_string ... ok
[INFO] [stdout] test sanitize::tests::test_redact_paths_preserves_flags ... ok
[INFO] [stdout] test sanitize::tests::test_redact_paths_short_path_not_redacted ... ok
[INFO] [stdout] test sanitize::tests::test_redact_paths_slash_at_start_of_string ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_initialize_rpc_error ... ok
[INFO] [stdout] test sanitize::tests::test_redact_paths_slash_followed_by_space_not_consumed ... ok
[INFO] [stdout] test mcp::tests::test_endpoint_preserves_existing_mcp_suffix ... ok
[INFO] [stdout] test server::tests::test_empty_ssh_config ... ok
[INFO] [stdout] test sanitize::tests::test_redact_unix_paths ... ok
[INFO] [stdout] test server::tests::test_find_existing_server ... ok
[INFO] [stdout] test server::tests::test_get_active_after_set_in_memory ... ok
[INFO] [stdout] test server::tests::test_find_nonexistent_server ... ok
[INFO] [stdout] test server::tests::test_is_compute_command ... ok
[INFO] [stdout] test server::tests::test_is_compute_command_make_build ... ok
[INFO] [stdout] test server::tests::test_is_compute_command_nextflow ... ok
[INFO] [stdout] test server::tests::test_is_compute_command_python_script ... ok
[INFO] [stdout] test server::tests::test_is_compute_command_r_script ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_list_skill_resources_markdown_fallback ... ok
[INFO] [stdout] test server::tests::test_is_compute_command_via_path ... ok
[INFO] [stdout] test server::tests::test_is_concrete_alias_simple ... ok
[INFO] [stdout] test server::tests::test_is_login_safe_cat ... ok
[INFO] [stdout] test server::tests::test_is_login_safe_command ... ok
[INFO] [stdout] test server::tests::test_is_login_safe_empty ... ok
[INFO] [stdout] test server::tests::test_is_login_safe_ls ... ok
[INFO] [stdout] test server::tests::test_is_login_safe_pwd ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_list_skill_resources_empty_when_no_resources_key ... ok
[INFO] [stdout] test server::tests::test_is_compute_command_snakemake ... ok
[INFO] [stdout] test server::tests::test_parse_selection_all ... ok
[INFO] [stdout] test server::tests::test_parse_selection_comma_list ... ok
[INFO] [stdout] test server::tests::test_list_servers ... ok
[INFO] [stdout] test server::tests::test_parse_selection_deduplication ... ok
[INFO] [stdout] test server::tests::test_parse_selection_comma_with_spaces ... ok
[INFO] [stdout] test server::tests::test_parse_selection_invalid_range_ignored ... ok
[INFO] [stdout] test server::tests::test_parse_selection_mixed ... ok
[INFO] [stdout] test server::tests::test_parse_selection_out_of_bounds ... ok
[INFO] [stdout] test server::tests::test_parse_selection_range ... ok
[INFO] [stdout] test server::tests::test_parse_selection_reverse_range_ignored ... ok
[INFO] [stdout] test server::tests::test_parse_selection_empty ... ok
[INFO] [stdout] test server::tests::test_parse_selection_zero_len ... ok
[INFO] [stdout] test server::tests::test_parse_selection_large_range ... ok
[INFO] [stdout] test server::tests::test_parse_ssh_config_content ... ok
[INFO] [stdout] test server::tests::test_parse_ssh_config_multiple_hosts ... ok
[INFO] [stdout] test server::tests::test_parse_ssh_config_host_without_hostname ... ok
[INFO] [stdout] test server::tests::test_remove_clears_active_when_active_removed ... ok
[INFO] [stdout] test server::tests::test_server_config_default ... ok
[INFO] [stdout] test server::tests::test_server_manager_new ... ok
[INFO] [stdout] test server::tests::test_server_type_display ... ok
[INFO] [stdout] test server::tests::test_server_config_active_field_default ... ok
[INFO] [stdout] test server::tests::test_get_active_none_by_default ... ok
[INFO] [stdout] test server::tests::test_parse_selection_single ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_list_skill_resources_skill_uri ... ok
[INFO] [stdout] test server::tests::test_server_type_from_str ... ok
[INFO] [stdout] test server::tests::test_server_type_from_str_invalid ... ok
[INFO] [stdout] test server::tests::test_set_active_unknown_server_fails ... ok
[INFO] [stdout] test server::tests::test_server_type_roundtrip ... ok
[INFO] [stdout] test server::tests::test_ssh_args_full_config ... ok
[INFO] [stdout] test server::tests::test_ssh_config_equals_separator ... ok
[INFO] [stdout] test server::tests::test_ssh_config_identity_file ... ok
[INFO] [stdout] test server::tests::test_ssh_config_no_hostname_field ... ok
[INFO] [stdout] test server::tests::test_ssh_config_wildcard_excluded ... ok
[INFO] [stdout] test server::tests::test_ssh_dest_with_user ... ok
[INFO] [stdout] test server::tests::test_ssh_dest_without_user ... ok
[INFO] [stdout] test server::tests::test_ssh_args_minimal ... ok
[INFO] [stdout] test server::tests::test_ssh_args_with_port_and_key ... ok
[INFO] [stdout] test skill::tests::test_create_template_contains_tool_name ... ok
[INFO] [stdout] test skill::tests::test_find_user_or_community_skill_path_found ... ok
[INFO] [stdout] test skill::tests::test_list_all_includes_builtin_skills ... ok
[INFO] [stdout] test skill::tests::test_find_user_or_community_skill_path_not_found ... ok
[INFO] [stdout] test skill::tests::test_load_builtin_case_insensitive ... ok
[INFO] [stdout] test skill::tests::test_load_builtin_case_insensitive_new ... ok
[INFO] [stdout] test skill::tests::test_list_all_includes_community_skills ... ok
[INFO] [stdout] test skill::tests::test_load_from_path_nonexistent ... ok
[INFO] [stdout] test skill::tests::test_load_community_skill_from_data_dir ... ok
[INFO] [stdout] test skill::tests::test_mcp_config_backward_compat_no_mcp_section ... ok
[INFO] [stdout] test skill::tests::test_load_from_path_toml_format ... ok
[INFO] [stdout] test skill::tests::test_mcp_config_defaults_to_empty ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_body_all_sections ... ok
[INFO] [stdout] test skill::tests::test_mcp_config_round_trips_toml ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_body_concepts_only ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_body_empty_body ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_body_incomplete_example_not_flushed ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_body_multiple_examples ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_body_non_list_lines_ignored ... ok
[INFO] [stdout] test server::tests::test_ssh_config_comments_only ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_body_pitfalls_only ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_body_examples_only ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_md_empty_body ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_md_basic ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_md_missing_frontmatter ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_md_no_closing_fence ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_md_crlf_line_endings ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_md_quoted_description ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_author_and_source_url ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_basic ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_empty_source_url ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_empty_author ... ok
[INFO] [stdout] test skill::tests::test_parse_skill_md_whitespace_prefix ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_skips_comments ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_quoted_values ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_skips_empty_lines ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_source_url_with_colons ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_unknown_keys_ignored ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_tags ... ok
[INFO] [stdout] test skill::tests::test_parse_yaml_frontmatter_tags_quoted ... ok
[INFO] [stdout] test skill::tests::test_skill_context_in_prompt_section ... ok
[INFO] [stdout] test skill::tests::test_remove_community_skill ... ok
[INFO] [stdout] test skill::tests::test_skill_manager_load_unknown_returns_none ... ok
[INFO] [stdout] test skill::tests::test_all_builtin_skills_parse ... ok
[INFO] [stdout] test skill::tests::test_remove_builtin_skill_fails ... ok
[INFO] [stdout] test skill::tests::test_skill_manager_load_case_insensitive ... ok
[INFO] [stdout] test skill::tests::test_skill_manager_load_user_skill_md ... ok
[INFO] [stdout] test skill::tests::test_skill_meta_default ... ok
[INFO] [stdout] test skill::tests::test_skill_to_prompt_section_with_examples ... ok
[INFO] [stdout] test skill::tests::test_to_prompt_section_concepts_only ... ok
[INFO] [stdout] test skill::tests::test_to_prompt_section_examples_only ... ok
[INFO] [stdout] test skill::tests::test_to_prompt_section_full ... ok
[INFO] [stdout] test skill::tests::test_to_prompt_section_empty_skill ... ok
[INFO] [stdout] test skill::tests::test_to_prompt_section_pitfalls_only ... ok
[INFO] [stdout] test skill::tests::test_validate_skill_depth_fail ... ok
[INFO] [stdout] test skill::tests::test_validate_skill_depth_insufficient_concepts ... ok
[INFO] [stdout] test skill::tests::test_validate_skill_depth_insufficient_examples ... ok
[INFO] [stdout] test skill::tests::test_validate_skill_depth_insufficient_pitfalls ... ok
[INFO] [stdout] test skill::tests::test_yaml_unquote_double_quoted ... ok
[INFO] [stdout] test skill::tests::test_yaml_unquote_bare_value ... ok
[INFO] [stdout] test skill::tests::test_yaml_unquote_empty_string ... ok
[INFO] [stdout] test skill::tests::test_yaml_unquote_single_char ... ok
[INFO] [stdout] test skill::tests::test_yaml_unquote_mismatched_quotes ... ok
[INFO] [stdout] test skill::tests::test_yaml_unquote_single_quoted ... ok
[INFO] [stdout] test skill::tests::test_validate_skill_depth_pass ... ok
[INFO] [stdout] test skill::tests::test_yaml_unquote_empty_quoted ... ok
[INFO] [stdout] test skill::tests::test_builtin_skill_depth_report ... ok
[INFO] [stdout] test server::tests::test_check_connection_unreachable_returns_false ... ok
[INFO] [stdout] test runner::tests::test_runner_new ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_read_resource_success ... ok
[INFO] [stdout] test mcp::tests::test_mcp_client_with_api_key ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_send_connection_refused_returns_error ... ok
[INFO] [stdout] test workflow::tests::test_all_builtin_templates_exist ... ok
[INFO] [stdout] test workflow::tests::test_build_infer_prompt_contains_data_type ... ok
[INFO] [stdout] test workflow::tests::test_build_infer_prompt_contains_file_preview ... ok
[INFO] [stdout] test workflow::tests::test_build_infer_prompt_contains_task_and_dir ... ok
[INFO] [stdout] test workflow::tests::test_build_infer_prompt_no_samples_message ... ok
[INFO] [stdout] test workflow::tests::test_data_context_default ... ok
[INFO] [stdout] test workflow::tests::test_find_template_all_have_native_content ... ok
[INFO] [stdout] test workflow::tests::test_find_template_case_insensitive ... ok
[INFO] [stdout] test workflow::tests::test_find_template_rnaseq ... ok
[INFO] [stdout] test workflow::tests::test_find_template_unknown_returns_none ... ok
[INFO] [stdout] test workflow::tests::test_native_system_prompt_content ... ok
[INFO] [stdout] test workflow::tests::test_nextflow_system_prompt_content ... ok
[INFO] [stdout] test workflow::tests::test_parse_workflow_response_all_engines ... ok
[INFO] [stdout] test workflow::tests::test_parse_workflow_response_empty_content_returns_none ... ok
[INFO] [stdout] test workflow::tests::test_parse_workflow_response_explanation_before_end_none ... ok
[INFO] [stdout] test workflow::tests::test_parse_workflow_response_missing_markers_returns_none ... ok
[INFO] [stdout] test workflow::tests::test_parse_workflow_response_reordered_markers_none ... ok
[INFO] [stdout] test workflow::tests::test_parse_workflow_response_valid ... ok
[INFO] [stdout] test workflow::tests::test_print_generated_workflow_no_explanation ... ok
[INFO] [stdout] test workflow::tests::test_print_generated_workflow_with_explanation ... ok
[INFO] [stdout] test workflow::tests::test_print_template_list_no_panic ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_bam_files ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_bam_markdup_suffix_stripped ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_bam_sorted_suffix_stripped ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_caps_file_list_at_20 ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_empty_dir ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_fast5_detected ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_nonexistent_returns_default ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_paired_end_fastq ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_pod5_detected ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_single_end_fastq ... ok
[INFO] [stdout] test workflow::tests::test_scan_data_directory_single_end_fastq_hint ... ok
[INFO] [stdout] test workflow::tests::test_snakemake_system_prompt_content ... ok
[INFO] [stdout] test workflow::tests::test_strip_bam_suffix_dedup ... ok
[INFO] [stdout] test workflow::tests::test_strip_bam_suffix_multiple_suffixes ... ok
[INFO] [stdout] test workflow::tests::test_strip_bam_suffix_no_suffix ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_read_resource_empty_content_returns_error ... ok
[INFO] [stdout] test workflow::tests::test_strip_bam_suffix_recal ... ok
[INFO] [stdout] test workflow::tests::test_strip_read_pair_suffix_1 ... ok
[INFO] [stdout] test workflow::tests::test_strip_read_pair_suffix_2 ... ok
[INFO] [stdout] test workflow::tests::test_strip_read_pair_suffix_no_suffix ... ok
[INFO] [stdout] test workflow::tests::test_strip_read_pair_suffix_r1_001 ... ok
[INFO] [stdout] test workflow::tests::test_strip_read_pair_suffix_r1_001_pattern ... ok
[INFO] [stdout] test workflow::tests::test_strip_read_pair_suffix_r1 ... ok
[INFO] [stdout] test workflow::tests::test_strip_read_pair_suffix_r2_001 ... ok
[INFO] [stdout] test workflow::tests::test_strip_read_pair_suffix_r2 ... ok
[INFO] [stdout] test workflow::tests::test_workflow_chat_message_clone_and_debug ... ok
[INFO] [stdout] test workflow::tests::test_template_has_description_and_assay ... ok
[INFO] [stdout] test workflow::tests::test_workflow_chat_request_serialization ... ok
[INFO] [stdout] test workflow::tests::mock_tests::test_generate_workflow_retries_on_bad_format ... ok
[INFO] [stdout] test workflow::tests::test_workflow_chat_request_debug ... ok
[INFO] [stdout] test workflow::tests::test_workflow_chat_response_empty_choices ... ok
[INFO] [stdout] test workflow::tests::test_workflow_chat_response_deserialization ... ok
[INFO] [stdout] test mcp::tests::test_mcp_client_new_stores_config ... ok
[INFO] [stdout] test workflow::tests::mock_tests::test_generate_workflow_snakemake_success ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_read_resource_no_contents_returns_error ... ok
[INFO] [stdout] test mcp::tests::test_endpoint_appends_mcp ... ok
[INFO] [stdout] test workflow::tests::mock_tests::test_infer_workflow_native_success ... ok
[INFO] [stdout] test mcp::tests::mock_tests::test_send_with_api_key ... ok
[INFO] [stdout] test workflow::tests::mock_tests::test_infer_workflow_empty_dir ... ok
[INFO] [stdout] test mcp::tests::test_endpoint_trims_trailing_slash_before_append ... ok
[INFO] [stdout] test workflow::tests::mock_tests::test_infer_workflow_retries_on_bad_format ... ok
[INFO] [stdout] test workflow::tests::mock_tests::test_generate_workflow_both_attempts_fail_returns_error ... ok
[INFO] [stdout] test workflow::tests::mock_tests::test_generate_workflow_native_success ... ok
[INFO] [stdout] test workflow::tests::mock_tests::test_generate_workflow_http_error ... ok
[INFO] [stdout] test workflow::tests::mock_tests::test_generate_workflow_nextflow_success ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- history::tests::test_mixed_local_and_server_entries stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'history::tests::test_mixed_local_and_server_entries' (321) panicked at src/history.rs:373:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 1
[INFO] [stdout]  right: 3
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5dc2a4fc47ba - std[f92b4c606f291077]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5dc2a4fc47ba - std[f92b4c606f291077]::backtrace_rs::backtrace::trace_unsynchronized::<std[f92b4c606f291077]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5dc2a4fc47ba - std[f92b4c606f291077]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5dc2a4fc47ba - <<std[f92b4c606f291077]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[786f478f706679df]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5dc2a4fde6ea - <core[786f478f706679df]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5dc2a4fde6ea - core[786f478f706679df]::fmt::write
[INFO] [stdout]    6:     0x5dc2a4fc9f12 - std[f92b4c606f291077]::io::default_write_fmt::<alloc[64763625b5a07cdb]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5dc2a4fc9f12 - <alloc[64763625b5a07cdb]::vec::Vec<u8> as std[f92b4c606f291077]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5dc2a4f9f62f - <std[f92b4c606f291077]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5dc2a4f9f62f - std[f92b4c606f291077]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5dc2a4fbb379 - std[f92b4c606f291077]::panicking::default_hook
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5dc2a469d85c - <alloc[64763625b5a07cdb]::boxed::Box<dyn for<'a, 'b> core[786f478f706679df]::ops::function::Fn<(&'a std[f92b4c606f291077]::panic::PanicHookInfo<'b>,), Output = ()> + core[786f478f706679df]::marker::Sync + core[786f478f706679df]::marker::Send> as core[786f478f706679df]::ops::function::Fn<(&std[f92b4c606f291077]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x5dc2a469d85c - test[20e1f0ae6cad7a17]::test_main_with_exit_callback::<test[20e1f0ae6cad7a17]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5dc2a4fbb5f2 - <alloc[64763625b5a07cdb]::boxed::Box<dyn for<'a, 'b> core[786f478f706679df]::ops::function::Fn<(&'a std[f92b4c606f291077]::panic::PanicHookInfo<'b>,), Output = ()> + core[786f478f706679df]::marker::Sync + core[786f478f706679df]::marker::Send> as core[786f478f706679df]::ops::function::Fn<(&std[f92b4c606f291077]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x5dc2a4fbb5f2 - std[f92b4c606f291077]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5dc2a4f9f6e8 - std[f92b4c606f291077]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5dc2a4f96b89 - std[f92b4c606f291077]::sys::backtrace::__rust_end_short_backtrace::<std[f92b4c606f291077]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5dc2a4fa08cd - __rustc[8241495c18a89d70]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5dc2a4fdeeac - core[786f478f706679df]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5dc2a4fded63 - core[786f478f706679df]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5dc2a4fd817d - core[786f478f706679df]::panicking::assert_failed::<usize, usize>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5dc2a42ed35a - oxo_call[e0cd14c0cb355968]::history::tests::test_mixed_local_and_server_entries
[INFO] [stdout]                                at /opt/rustwide/workdir/src/history.rs:373:9
[INFO] [stdout]   22:     0x5dc2a42c9547 - oxo_call[e0cd14c0cb355968]::history::tests::test_mixed_local_and_server_entries::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/history.rs:357:45
[INFO] [stdout]   23:     0x5dc2a435ef26 - <oxo_call[e0cd14c0cb355968]::history::tests::test_mixed_local_and_server_entries::{closure#0} as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5dc2a469193b - <fn() -> core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String> as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5dc2a469193b - test[20e1f0ae6cad7a17]::__rust_begin_short_backtrace::<core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>, fn() -> core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5dc2a469e32b - test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5dc2a469e32b - <core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}> as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5dc2a469e32b - std[f92b4c606f291077]::panicking::catch_unwind::do_call::<core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}>, core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5dc2a469e32b - std[f92b4c606f291077]::panicking::catch_unwind::<core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>, core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5dc2a469e32b - std[f92b4c606f291077]::panic::catch_unwind::<core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}>, core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5dc2a469e32b - test[20e1f0ae6cad7a17]::run_test_in_process
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5dc2a469e32b - test[20e1f0ae6cad7a17]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5dc2a4699a44 - test[20e1f0ae6cad7a17]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5dc2a4699a44 - std[f92b4c606f291077]::sys::backtrace::__rust_begin_short_backtrace::<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5dc2a46a0f32 - std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked::<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5dc2a46a0f32 - <core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5dc2a46a0f32 - std[f92b4c606f291077]::panicking::catch_unwind::do_call::<core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5dc2a46a0f32 - std[f92b4c606f291077]::panicking::catch_unwind::<(), core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5dc2a46a0f32 - std[f92b4c606f291077]::panic::catch_unwind::<core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5dc2a46a0f32 - std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked::<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5dc2a46a0f32 - <std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1} as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5dc2a4fc39ef - <alloc[64763625b5a07cdb]::boxed::Box<dyn core[786f478f706679df]::ops::function::FnOnce<(), Output = ()> + core[786f478f706679df]::marker::Send> as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x5dc2a4fc39ef - <std[f92b4c606f291077]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x798b50da2aa4 - <unknown>
[INFO] [stdout]   45:     0x798b50e2fa64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- job::tests::test_read_input_list_io_error_propagates stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'job::tests::test_read_input_list_io_error_propagates' (401) panicked at src/job.rs:1512:13:
[INFO] [stdout] Expected error for unreadable file
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5dc2a4fc47ba - std[f92b4c606f291077]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5dc2a4fc47ba - std[f92b4c606f291077]::backtrace_rs::backtrace::trace_unsynchronized::<std[f92b4c606f291077]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5dc2a4fc47ba - std[f92b4c606f291077]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5dc2a4fc47ba - <<std[f92b4c606f291077]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[786f478f706679df]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5dc2a4fde6ea - <core[786f478f706679df]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5dc2a4fde6ea - core[786f478f706679df]::fmt::write
[INFO] [stdout]    6:     0x5dc2a4fc9f12 - std[f92b4c606f291077]::io::default_write_fmt::<alloc[64763625b5a07cdb]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5dc2a4fc9f12 - <alloc[64763625b5a07cdb]::vec::Vec<u8> as std[f92b4c606f291077]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5dc2a4f9f62f - <std[f92b4c606f291077]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5dc2a4f9f62f - std[f92b4c606f291077]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5dc2a4fbb379 - std[f92b4c606f291077]::panicking::default_hook
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5dc2a469d85c - <alloc[64763625b5a07cdb]::boxed::Box<dyn for<'a, 'b> core[786f478f706679df]::ops::function::Fn<(&'a std[f92b4c606f291077]::panic::PanicHookInfo<'b>,), Output = ()> + core[786f478f706679df]::marker::Sync + core[786f478f706679df]::marker::Send> as core[786f478f706679df]::ops::function::Fn<(&std[f92b4c606f291077]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x5dc2a469d85c - test[20e1f0ae6cad7a17]::test_main_with_exit_callback::<test[20e1f0ae6cad7a17]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5dc2a4fbb5f2 - <alloc[64763625b5a07cdb]::boxed::Box<dyn for<'a, 'b> core[786f478f706679df]::ops::function::Fn<(&'a std[f92b4c606f291077]::panic::PanicHookInfo<'b>,), Output = ()> + core[786f478f706679df]::marker::Sync + core[786f478f706679df]::marker::Send> as core[786f478f706679df]::ops::function::Fn<(&std[f92b4c606f291077]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x5dc2a4fbb5f2 - std[f92b4c606f291077]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5dc2a4f9f71a - std[f92b4c606f291077]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5dc2a4f96b89 - std[f92b4c606f291077]::sys::backtrace::__rust_end_short_backtrace::<std[f92b4c606f291077]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5dc2a4fa08cd - __rustc[8241495c18a89d70]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5dc2a4fdeeac - core[786f478f706679df]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5dc2a442b6ad - oxo_call[e0cd14c0cb355968]::job::tests::test_read_input_list_io_error_propagates
[INFO] [stdout]                                at /opt/rustwide/workdir/src/job.rs:1512:13
[INFO] [stdout]   20:     0x5dc2a441bbb7 - oxo_call[e0cd14c0cb355968]::job::tests::test_read_input_list_io_error_propagates::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/job.rs:1499:50
[INFO] [stdout]   21:     0x5dc2a4356026 - <oxo_call[e0cd14c0cb355968]::job::tests::test_read_input_list_io_error_propagates::{closure#0} as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5dc2a469193b - <fn() -> core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String> as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5dc2a469193b - test[20e1f0ae6cad7a17]::__rust_begin_short_backtrace::<core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>, fn() -> core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:663:18
[INFO] [stdout]   24:     0x5dc2a469e32b - test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:686:74
[INFO] [stdout]   25:     0x5dc2a469e32b - <core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}> as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x5dc2a469e32b - std[f92b4c606f291077]::panicking::catch_unwind::do_call::<core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}>, core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x5dc2a469e32b - std[f92b4c606f291077]::panicking::catch_unwind::<core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>, core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x5dc2a469e32b - std[f92b4c606f291077]::panic::catch_unwind::<core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<test[20e1f0ae6cad7a17]::run_test_in_process::{closure#0}>, core[786f478f706679df]::result::Result<(), alloc[64763625b5a07cdb]::string::String>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5dc2a469e32b - test[20e1f0ae6cad7a17]::run_test_in_process
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:686:27
[INFO] [stdout]   30:     0x5dc2a469e32b - test[20e1f0ae6cad7a17]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:607:43
[INFO] [stdout]   31:     0x5dc2a4699a44 - test[20e1f0ae6cad7a17]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/test/src/lib.rs:637:41
[INFO] [stdout]   32:     0x5dc2a4699a44 - std[f92b4c606f291077]::sys::backtrace::__rust_begin_short_backtrace::<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x5dc2a46a0f32 - std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked::<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   34:     0x5dc2a46a0f32 - <core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x5dc2a46a0f32 - std[f92b4c606f291077]::panicking::catch_unwind::do_call::<core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x5dc2a46a0f32 - std[f92b4c606f291077]::panicking::catch_unwind::<(), core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x5dc2a46a0f32 - std[f92b4c606f291077]::panic::catch_unwind::<core[786f478f706679df]::panic::unwind_safe::AssertUnwindSafe<std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x5dc2a46a0f32 - std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked::<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   39:     0x5dc2a46a0f32 - <std[f92b4c606f291077]::thread::lifecycle::spawn_unchecked<test[20e1f0ae6cad7a17]::run_test::{closure#1}, ()>::{closure#1} as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5dc2a4fc39ef - <alloc[64763625b5a07cdb]::boxed::Box<dyn core[786f478f706679df]::ops::function::FnOnce<(), Output = ()> + core[786f478f706679df]::marker::Send> as core[786f478f706679df]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   41:     0x5dc2a4fc39ef - <std[f92b4c606f291077]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/1f7f8ea0721a3b1eb73e6c6d25cccb371434b320/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x798b50da2aa4 - <unknown>
[INFO] [stdout]   43:     0x798b50e2fa64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     history::tests::test_mixed_local_and_server_entries
[INFO] [stdout]     job::tests::test_read_input_list_io_error_propagates
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 752 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.57s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "7697c0dc60391fb09573585398b8f72b542097b8b9876dcb866b93f9fab0bd16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7697c0dc60391fb09573585398b8f72b542097b8b9876dcb866b93f9fab0bd16", kill_on_drop: false }`
[INFO] [stdout] 7697c0dc60391fb09573585398b8f72b542097b8b9876dcb866b93f9fab0bd16
